#include <iostream>
#include <queue>
#include <deque>
using namespace std;

int main(){
    //队列
    queue<int> q;   //定义
    for(int i = 0; i < 10; i++){
        q.push(i + 1);  //入队
    }
    cout<<"队首："<<q.front()<<endl;//返回队首元素
    q.pop();    //出队
    cout<<"队尾："<<q.back()<<endl; //返回队尾元素
    cout<<"队中元素个数："<<q.size()<<endl;//返回队中元素个数
    cout<<"队列是否为空："<<q.empty()<<endl;    //判断队列是否为空
    deque<int> Q;
    
    //双端队列
    deque<int> dq;
    for(int i = 0; i < 10; i++){
        dq.push_back(i + 1);//尾插
    }
    dq.push_front(11);//头插
    cout<<"队尾："<<dq.back()<<endl;
    cout<<"队头："<<dq.front()<<endl;
    cout<<"元素个数："<<dq.size()<<endl;
    dq.pop_back(); //删除队尾
    while(!dq.empty()){
        cout<<dq.front()<<" ";  
        dq.pop_front(); //删除队头
    }
    return 0;
}